// pages/organization/create/create.js
const API = require('../../../utils/api')
Page({
  data: {
    form: {
      orgName: '',
      type: 'company',
      remarks: '',
      joinMethod: 'direct',
      avatarUrl:''
    },
    errors: {
      name: ''
    },
    isSubmitting: false,
    orgTypes: [
      { value: 'company', name: '企业', icon: '/icons/org-company.svg' },
      { value: 'team', name: '团队', icon: '/icons/org-team.svg' },
      { value: 'school', name: '学校', icon: '/icons/org-school.svg' },
      { value: 'community', name: '社群', icon: '/icons/org-community.svg' },
      { value: 'other', name: '其他', icon: '/icons/org-other.svg' }
    ],
    joinMethods: [
      { value: 'direct', name: '直接加入' },
      { value: 'approval', name: '需要审批' },
      { value: 'invite', name: '仅限邀请' }
    ],
    joinMethodIndex: 0
  },

  onLoad() {
    // 可以在这里初始化一些数据
  },

  // 选择头像
  chooseAvatar() {
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          'form.avatarUrl': res.tempFiles[0].tempFilePath
        })
      }
    })
  },
  // 输入处理
  handleInput(e) {
    const { field } = e.currentTarget.dataset
    this.setData({
      [`form.${field}`]: e.detail.value
    })
    // 实时验证
    if (field === 'orgName') {
      this.validateName(e.detail.value)
    }
  },
  // 验证组织名称
  validateName(name) {
    let error = ''
    if (!name) {
      error = '组织名称不能为空'
    } else if (name.length < 2) {
      error = '名称至少2个字符'
    }
    this.setData({
      'errors.name': error
    })
    return !error
  },

  // 选择组织类型
  selectType(e) {
    this.setData({
      'form.type': e.currentTarget.dataset.value
    })
  },

  // 选择加入方式
  changeJoinMethod(e) {
    const index = e.detail.value
    this.setData({
      joinMethodIndex: index,
      'form.joinMethod': this.data.joinMethods[index].value
    })
  },

  // 提交表单
  submitForm() {
    if (!this.validateName(this.data.form.orgName)) {
      wx.showToast({
        title: '请填写正确的组织名称',
        icon: 'none'
      })
      return
    }
    if (this.data.isSubmitting) return
    this.setData({ isSubmitting: true })
    // 显示加载状态
    wx.showLoading({ title: '创建中...', mask: true })
    API.orgAdd({
      name:'file',
      filePath:this.data.form.avatarUrl,
      formData:this.data.form
    }).then(res=>{
      this.setData({
        isSubmitting:false,
        form:{}
      })
      wx.hideLoading()
      wx.showToast({
        title: '新增成功',
        icon: 'none'
      });
    }).catch(err=>{
      wx.hideLoading()
    })
  },

  // 返回上一页
  navigateBack() {
    wx.navigateBack()
  }
})